home *** CD-ROM | disk | FTP | other *** search
- typedef unsigned char byte;
- typedef unsigned short word;
- typedef unsigned long ulong;
-
- #define POST_TYPE (('P'<<24)+('O'<<16)+('S'<<8)+'T')
-
- /* Format of a bin file: (From mcvert by Doug Moore)
- A bin file is composed of 128 byte blocks. The first block is the
- info_header (see below). Then comes the data fork, null padded to fill the
- last block. Then comes the resource fork, padded to fill the last block. A
- proposal to follow with the text of the Get Info box has not been implemented,
- to the best of my knowledge. Version, zero1 and zero2 are what the receiving
- program looks at to determine if a MacBinary transfer is being initiated.
- */
-
- typedef struct { /* info file header (128 bytes). Unfortunately, these
- longs don't align to word boundaries */
- byte version; /* there is only a version 0 at this time */
- byte nlen; /* Length of filename. */
- byte name[63]; /* Filename (only 1st nlen are significant)*/
- byte type[4]; /* File type. */
- byte auth[4]; /* File creator. */
- byte flags; /* file flags: LkIvBnSyBzByChIt */
- byte zero1; /* Locked, Invisible,Bundle, System */
- /* Bozo, Busy, Changed, Init */
- byte icon_vert[2]; /* Vertical icon position within window */
- byte icon_horiz[2]; /* Horizontal icon postion in window */
- byte window_id[2]; /* Window or folder ID. */
- byte protect; /* = 1 for protected file, 0 otherwise */
- byte zero2;
- byte dlen[4]; /* Data Fork length (bytes) - most sig. */
- byte rlen[4]; /* Resource Fork length byte first */
- byte ctim[4]; /* File's creation date. */
- byte mtim[4]; /* File's "last modified" date. */
- byte ilen[2]; /* GetInfo message length */
- byte flags2; /* Finder flags, bits 0-7 */
- byte unused[14];
-
- byte packlen[4]; /* length of total files when unpacked */
- byte headlen[2]; /* length of secondary header */
- byte uploadvers; /* Version of MacBinary II that the uploading p
- ogram is written for */
- byte readvers; /* Minimum MacBinary II version needed to read
- his file */
- byte crc[2]; /* CRC of the previous 124 bytes */
- byte padding[2]; /* two trailing unused bytes */
- } info_header;
-
- typedef struct {
- long rtype;
- short nrsc;
- short offset;
- } type_info;
-
- typedef struct {
- short id;
- short name;
- long offset;
- long reserved;
- } ref_list;
-
- #define POST_TEXT 1
- #define POST_DATA 2
- #define POST_END 5
-